﻿/* Autoduel Game
 * CS4911 Senior Design Project
 * Fall 2010 Semester
 * Ian Axelrod, Liz Ha, Andrew Muldowney, Edward Futch
 */

using AutoduelClient.GameUI;
namespace AutoduelClient.GameClient.Player
{

    /// <summary>
    /// Represents a menu choice from a menu
    /// displayed by the game
    /// </summary>
    public class MenuChoice
    {
		#region Fields (2)
		/// <summary>
        /// Any data associated with the choice
        /// </summary>
        public object[] data;

		/// <summary>
        /// The choice
        /// </summary>
        public string choice;

        /// <summary>
        /// Boolean marking whether or not this choice requires
        /// user input
        /// </summary>
        public bool needsInput;

        /// <summary>
        /// Callback to the method to be executed by the
        /// menu choice
        /// </summary>
        public MenuChoiceCallback menuChoiceCallback;

		#endregion

		#region Constructors (1)
		/// <summary>
        /// Construct a MenuChoice structure
        /// </summary>
        /// <param name="menuChoiceCallback">Callback to the method to be executed by the
        /// menu choice</param>
        /// <param name="choice">The choice</param>
        /// <param name="data">Data associated with the choice</param>
        /// <param name="needsInput">Boolean marking whether or not this choice requires user input</param>
        public MenuChoice(MenuChoiceCallback menuChoiceCallback, string choice, object[] data, bool needsInput)
        {
            this.menuChoiceCallback = menuChoiceCallback;
            this.choice = choice;
            this.data = data;
            this.needsInput = needsInput;
        }

        /// <summary>
        /// Gets the string representation of this class
        /// </summary>
        /// <returns>Return the string representation of this class</returns>
        public override string ToString()
        {
            return this.choice;
        }
		#endregion
    }
}
